home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / game / shoot / ADescentSrc.lha / descent / includes / timer.h < prev    next >
C/C++ Source or Header  |  1998-08-10  |  4KB  |  111 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: /usr/CVS/descent/includes/timer.h,v $
  15.  * $Revision: 1.2 $
  16.  * $Author: tfrieden $
  17.  * $Date: 1998/08/09 23:02:46 $
  18.  *
  19.  * Header for timer functions
  20.  *
  21.  * $Log: timer.h,v $
  22.  * Revision 1.2  1998/08/09 23:02:46  tfrieden
  23.  * Removed thad f@*king TICKER
  24.  *
  25.  * Revision 1.1.1.1  1998/03/03 15:12:04  nobody
  26.  * reimport after crash from backup
  27.  *
  28.  * Revision 1.1.1.1  1998/02/13  20:20:16  hfrieden
  29.  * Initial Import
  30.  *
  31.  * Revision 1.8  1994/12/10  12:27:23  john
  32.  * Added timer_get_approx_seconds.
  33.  * 
  34.  * Revision 1.7  1994/12/10  12:10:25  john
  35.  * Added types.h.
  36.  * 
  37.  * 
  38.  * 
  39.  * 
  40.  * Revision 1.6  1994/12/10  12:07:06  john
  41.  * Added tick counter variable.
  42.  * 
  43.  * Revision 1.5  1994/11/15  12:04:15  john
  44.  * Cleaned up timer code a bit... took out unused functions
  45.  * like timer_get_milliseconds, etc.
  46.  * 
  47.  * Revision 1.4  1994/04/28  23:50:08  john
  48.  * Changed calling for init_timer.  Made the function that the
  49.  * timer calls be a far function. All of this was done to make
  50.  * our timer system compatible with the HMI sound stuff.
  51.  * 
  52.  * Revision 1.3  1994/02/17  15:57:12  john
  53.  * Changed key libary to C.
  54.  * 
  55.  * Revision 1.2  1994/01/18  10:58:34  john
  56.  * Added timer_get_fixed_seconds
  57.  * 
  58.  * Revision 1.1  1993/07/10  13:10:41  matt
  59.  * Initial revision
  60.  * 
  61.  *
  62.  */
  63.  
  64.  
  65. #ifndef _TIMER_H
  66. #define _TIMER_H
  67.  
  68. #include "types.h"
  69. #include "fix.h"
  70.  
  71. //==========================================================================
  72. // This installs the timer services and interrupts at the rate specified by
  73. // count_val.  If 'function' isn't 0, the function pointed to by function will
  74. // be called 'freq' times per second.  Should be > 19 and anything around
  75. // 2-3000 is gonna start slowing down the system.  Count_val should be
  76. // 1,193,180 divided by your target frequency. Use 0 for the normal 18.2 Hz
  77. // interrupt rate.
  78.  
  79. #define TIMER_FREQUENCY 1193180
  80.  
  81. extern void timer_init();
  82. extern void timer_close();
  83. extern void timer_set_rate(int count_val);
  84. extern void timer_set_function( void * function );
  85.  
  86. //==========================================================================
  87. // These functions return the time since the timer was initialized in
  88. // some various units. The total length of reading time varies for each
  89. // one.  They will roll around after they read 2^32.
  90. // There are milliseconds, milliseconds times 10, milliseconds times 100,
  91. // and microseconds.  They time out after 1000 hrs, 100 hrs, 10 hrs, and
  92. // 1 hr, respectively.
  93.  
  94. extern fix timer_get_fixed_seconds();   // Rolls about every 9 hours...
  95. extern fix timer_get_fixed_secondsX(); // Assume interrupts already disabled
  96. extern fix timer_get_approx_seconds();      // Returns time since program started... accurate to 1/120th of a second
  97.  
  98. //NOT_USED extern unsigned int timer_get_microseconds();
  99. //NOT_USED extern unsigned int timer_get_milliseconds100();
  100. //NOT_USED extern unsigned int timer_get_milliseconds10();
  101. //NOT_USED extern unsigned int timer_get_milliseconds();
  102. //NOT_USED extern unsigned int timer_get_millisecondsX();   // Assume interrupts disabled
  103.  
  104. //==========================================================================
  105. // Use to access the BIOS ticker... ie...   i = TICKER
  106. #define TICKER (timer_get_fixed_seconds() / 3600)
  107. #define USECS_PER_READING( start, stop, frames ) (((stop-start)*54945)/frames)
  108.  
  109. #endif
  110.  
  111.